AVR Watchdog interrupt mode and reset mode
This means if we want to use watchdog timer as source of Interrupt,
  then i should disable WDE. Am I right?


Correct - WDE should not be set if you want to use WD in interrupt mode. 


  Because when i disabling WDE in code, Watchdog timer is getting
  disabled.


This is not correct. WDE stands for Watchdog System Reset Enable. The Watchdog timer is actually always running no matter what. The WDE and the WDIE bits only determine what what happens when the timer hits the timeout. 

Your code for setting up WD interrupt mode is basically correct, except...


It is good practice to turn off interrupts while changing the WDTCSR because if an int happened in between the time when you enable changes and tried to actual make the change, then more than 4 cycles would have elapsed and the change would fail. 
It is slightly more efficient to set all the bits in WDTCSR at once. 

Watchdog_init() {    


    // Just to be safe since we can not clear WDE if WDRF is set
    MCUSR &amp;= ~(1&lt;&lt;WDRF);


    // disable interrupts so we do not get interrupted while doing timed sequence
    cli()

    // First step of timed sequence, we have 4 cycles after this to make changes to WDE and WD timeout
    WDTCSR |= (1&lt;&lt;WDCE) | (1&lt;&lt;WDE); 

    // timeout in 8 second, disable reset mode. Must be done in one operation
    WDTCSR = 1&lt;&lt;WDP0 | 1&lt;&lt;WDP3;

    // enable global interrupts
    sei();

    // enable watchdog interrupt only mode 
    WDTCSR |= _BV(WDIE);


}


Other things to check:


Make sure global interrupts are enabled or else the interrupts will happen but will not run your handler. 
Make sure that the WDTON fuse is not programmed or else you can not use interrupt mode.