Enforcing convex constraints in Graph Neural Networks