Sampling the Banana-shaped distribution

Thank you for your prompt reply! It is PyMC3 v3.4.1 and upgrade has not resolved the issue. Still the same error (for what it’s worth in full):

BrokenProcessPool                         Traceback (most recent call last)
<ipython-input-21-fb1a0d873163> in <module>()
  4 with pm.Model() as pot1m:
  5     pm.DensityDist('pot1', logp=cust_logp, shape=(2,))
----> 6     trace1 = pm.sample(1000, step=pm.NUTS())
  7     trace2 = pm.sample(1000, step=pm.Metropolis())
  8 

~/anaconda3/lib/python3.6/site-packages/pymc3/sampling.py in sample(draws, step, init, n_init, start, trace, chain_idx, chains, cores, tune, nuts_kwargs, step_kwargs, progressbar, model, random_seed, live_plot, discard_tuned_samples, live_plot_kwargs, compute_convergence_checks, use_mmap, **kwargs)
440 
441         has_population_samplers = np.any([ isinstance(m, arraystep.PopulationArrayStepShared)
--> 442             for m in (step.methods if isinstance(step, CompoundStep) else [step])])
443 
444         parallel = cores > 1 and chains > 1 and not has_population_samplers

~/anaconda3/lib/python3.6/site-packages/pymc3/sampling.py in _mp_sample(**kwargs)
980         for idx in range(chain, chain + chains):
981             if trace is not None:
--> 982                 strace = _choose_backend(copy(trace), idx, model=model)
983             else:
984                 strace = _choose_backend(None, idx, model=model)

~/anaconda3/lib/python3.6/site-packages/joblib/parallel.py in __call__(self, iterable)
960 
961             with self._backend.retrieval_context():
--> 962                 self.retrieve()
963             # Make sure that we get a last message telling us we are done
964             elapsed_time = time.time() - self._start_time

~/anaconda3/lib/python3.6/site-packages/joblib/parallel.py in retrieve(self)
863             try:
864                 if getattr(self._backend, 'supports_timeout', False):
--> 865                     self._output.extend(job.get(timeout=self.timeout))
866                 else:
867                     self._output.extend(job.get())

~/anaconda3/lib/python3.6/site-packages/joblib/_parallel_backends.py in wrap_future_result(future, timeout)
513         AsyncResults.get from multiprocessing."""
514         try:
--> 515             return future.result(timeout=timeout)
516         except LokyTimeoutError:
517             raise TimeoutError()

~/anaconda3/lib/python3.6/site-packages/joblib/externals/loky/_base.py in result(self, timeout)
429                 raise CancelledError()
430             elif self._state == FINISHED:
--> 431                 return self.__get_result()
432             else:
433                 raise TimeoutError()

~/anaconda3/lib/python3.6/site-packages/joblib/externals/loky/_base.py in __get_result(self)
380     def __get_result(self):
381         if self._exception:
--> 382             raise self._exception
383         else:
384             return self._result

BrokenProcessPool: A process in the executor was terminated abruptly while the future was running or pending.