Retrofit 2, Rx 2 y llamadas asincrónicas

Estoy comenzando con Retrofit y Rx y creé una API sonriente, con tal configuration (Kodein):

bind<CallAdapter.Factory>() with singleton { RxJava2CallAdapterFactory.create() } bind<RetrofitInterface>() with singleton { val retrofit = Retrofit.Builder() .client(instance()) .baseUrl(instance<String>("apiRoot")) .addCallAdapterFactory(instance()) .addConverterFactory(instance()) .build() retrofit.create(RetrofitInterface::class.java) } 

Ahora parece que cuando llamo a mis methods API creados por Retrofit, se suscriben en el hilo actual en lugar del hilo establecido en .subscribeOn(someThread) , como cuando llamo:

  registrationSession(mUserName, PublicKeyType.XXXX, TargetType.YYYY) .subscribeOn(io.reactivex.schedulers.Schedulers.newThread()) ... .subscribe( { }, { error -> Log.e("Error", error.message) } ) 

la actualización de registrationSession suministrada llamará la request INMEDIATAMENTE, en el hilo principal, NO cuando me suscribo, lo que no esperaría (pero de nuevo, estoy comenzando con Rx, podría estar equivocado)

En caso de que se pregunte cómo se define registrationSession, se trata de un simple contenedor de funciones sobre esto:

 @POST("registration/session") fun registrationSession( @Header(Constants.LB_DEVICEID_HEADER) deviceUuid: String, @Body registrationSessionPost: RegistrationSessionPost ): Observable<Response> 

Entonces, ¿qué puedo hacer para que registrationSession ejecute en un hilo diferente? ¿Hay alguna manera?