Distributed Learning Systems with First-order Methods