Running functions concurrently - Python threading and ThreadPoolExecutor | Knoovi