Client-server multi-task learning from distributed datasets