Object penetrates each other when moved by script

Greeting. I am making a puzzle game(like soma cube) and have problems preventing objects from overlapping each other.
When I try to move them dynamically, the puzzle piece will overlap each other. But I just want them to stay close to each other without overlapping.
(I have tried using transform.position and rigidbody.MovePosition)

Right now, I have a parent game object holding a few cubes (game object) as a puzzle piece. Each cube in the parent has a rigidbody attached (isKinematic:true).
Both parent and cubes have box colliders attached.

May I ask how to solve this overlapping problem? Thanks.

Use this
http://answers.unity3d.com/questions/433472/objects-passing-through-collision-because-of-trans.html