https://medium.com/practical-data-science-and-engineering/beginners-guide-to-asynchronous-programming-in-python-9c95c7bc476d