The multiprocessing Pool does not terminate when PDFGenerator is garbage collected. Repeated calls to `parallel` fork new processes and use all memory. Solution: make sure the pool is terminated when out of scope.