code: @Override
      protected void searchDisposed(){
          // dispose replicas
          replicas.forEach(r -> r.dispose());
          // shut down thread pool
          pool.shutdown();
          // dispose super
          super.searchDisposed();
      }
docs: When disposing a parallel tempering search, it will dispose each contained Metropolis replica and will
  shut down the thread pool used for concurrent execution of replicas.