This includes creating the pool, tearing it down under normal use, and
tearing it down in case of exception.
Doing this makes it harder to leak processes, as for instance was
happening in #410 (closed).
Fixes #410 (closed)
This will create a new commit in order to revert the existing changes.