Distributed machine learning: When to use it, tools and the future