The current implementation of the MultirpocessingEvaluator predates concurrent.futures. A lot of what is currently done can readily be supported by using a ProcessPoolExecutor directly. Moreover, the logging setup can be simplified using the QueueHandler and QueueListerener now available in logging. Together this will reduce the code in the workbench and make the implementation more similar to the MPIEvaluator.
The current implementation of the MultirpocessingEvaluator predates concurrent.futures. A lot of what is currently done can readily be supported by using a ProcessPoolExecutor directly. Moreover, the logging setup can be simplified using the QueueHandler and QueueListerener now available in logging. Together this will reduce the code in the workbench and make the implementation more similar to the MPIEvaluator.