_alpha_grid needs to be modified to address the multitask case.

replace :

alpha_max = np.max(np.abs(np.dot(X.T, y))

by

alpha_max = np.max(np.sqrt(np.sum(np.dot(X.T, y) ** 2, axis=1)))

you'll also realize the problem in the sparse case as X is not actually centered...