Harnessing Smoothness to Accelerate Distributed Optimization