could probably use a thread pool instead of a process pool or maybe a third party async library: https://github.com/python-trio/trio