We propose a two-phase programming by demonstration (PbD) framework, which enables fast deployment of complex bi-manual assembly tasks. The first phase is a pre-learning phase, where the robot observes multiple task demonstrations performed by humans. Applying motion segmentation, it builds a rough plan of the task to be accomplished. Next phase is the policy refinement with incremental learning, performed by the kinesthetic guidance of the robot. In this phase, the robot already knows the rough task plan, so it can actively follow the pre-learned trajectories. The operator can arbitrarily modify the execution speed by simply pushing the robot along the demonstrated trajectory. Moreover, it can drive the robot forward and backward, and incrementally modify only those parts of the trajectory that need the refinement. During this phase, the robot estimates also the interaction forces and environmental compliance, which is needed for a robust and stable accomplished of assembly tasks in the exploitation phase. The benefit of this framework is in improved learning efficiency since the operator can concentrate only on the fine adjustment of the pre-learned trajectory. The robot optimizes its configuration from the data obtained in the prelearning phase, which substantially facilitates the learning of kinematic redundant mechanisms and learning of bi-manual robot mechanisms. The proposed scheme was validated in a task where a bi-manual robot composed of two Kuka LWR-4 robot arms performs an assembly task.