Trading Computation for Communication: Distributed Stochastic Dual Coordinate Ascent