code: @CheckReturnValue
      @SchedulerSupport(SchedulerSupport.CUSTOM)
      public final Completable unsubscribeOn(final Scheduler scheduler) {
          ObjectHelper.requireNonNull(scheduler, "scheduler is null");
          return RxJavaPlugins.onAssembly(new CompletableDisposeOn(this, scheduler));
      }
docs: Returns a Completable which makes sure when a subscriber disposes the subscription, the
  dispose is called on the specified scheduler.
  <p>
  <img width="640" height="716" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/Completable.unsubscribeOn.png" alt="">
  <dl>
  <dt><b>Scheduler:</b></dt>
  <dd>{@code unsubscribeOn} calls dispose() of the upstream on the {@link Scheduler} you specify.</dd>
  </dl>
  @param scheduler the target scheduler where to execute the disposing
  @return the new Completable instance
  @throws NullPointerException if scheduler is null